Skip to content

Conversation

@james-d-mitchell
Copy link
Member

No description provided.

@james-d-mitchell james-d-mitchell added the wip Label for PRs that are work in progress label Nov 11, 2025
@james-d-mitchell james-d-mitchell marked this pull request as draft November 12, 2025 10:07
@james-d-mitchell james-d-mitchell force-pushed the hpcombi branch 4 times, most recently from bbc4d86 to ce4c773 Compare November 20, 2025 12:47
@james-d-mitchell
Copy link
Member Author

@Joseph-Edwards any chance you can see if you can reproduce the failures on your computer? Everything passes for me compiling with clang or gcc (13.4), so I imagine this might be an architecture issue. You need to add CXXFLAGS="-fpermissive -flax-vector-conversions" to pip before it will compile

@Joseph-Edwards
Copy link
Collaborator

@Joseph-Edwards any chance you can see if you can reproduce the failures on your computer?

I'm getting this when running test_cong.py:


Stack trace (most recent call last):
#31   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1bc1642, in 
#30   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1bc1ab5, in Py_RunMain
#29   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1c233f3, in 
#28   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1c234f5, in 
#27   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1c2354f, in 
#26   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1c23d1e, in 
#25   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1c24906, in 
#24   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a7cf61, in 
#23   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a8366e, in PyEval_EvalCode
#22   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a83960, in 
#21   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a52bd5, in 
#20   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a52910, in PyObject_Call
#19   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a14a4d, in 
#18   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a14ed3, in 
#17   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a0cd6a, in 
#16   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1b1bfe6, in 
#15   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1b1c148, in 
#14   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1b1c2ce, in _PyEval_EvalFrameDefault
#13   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a277d1, in 
#12   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1b22146, in 
#11   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a8366e, in PyEval_EvalCode
#10   Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a83960, in 
#9    Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a52bd5, in 
#8    Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1d65180, in 
#7    Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a3c5a6, in _PyObject_MakeTpCall
#6    Object "[...]/libsemigroups_pybind11/.venv/bin/python3", at 0x1a31d7b, in 
#5    Object "[...]/libsemigroups_pybind11/.venv/lib/python3.14/site-packages/_libsemigroups_pybind11.cpython-314-x86_64-linux-gnu.so", at 0x77f0031d2189, in 
#4    Object "[...]/libsemigroups_pybind11/.venv/lib/python3.14/site-packages/_libsemigroups_pybind11.cpython-314-x86_64-linux-gnu.so", at 0x77f003318cc1, in 
#3    Object "[...]/libsemigroups_pybind11/.venv/lib/python3.14/site-packages/_libsemigroups_pybind11.cpython-314-x86_64-linux-gnu.so", at 0x77f003318411, in 
#2    Object "[...]/libsemigroups_pybind11/.venv/lib/python3.14/site-packages/_libsemigroups_pybind11.cpython-314-x86_64-linux-gnu.so", at 0x77f0033180f1, in 
#1    Object "/usr/local/lib/libsemigroups.so.3", at 0x77f008cc059c, in libsemigroups::IsObviouslyInfinite::~IsObviouslyInfinite()
#0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x77f00caadd55, in __libc_free
Segmentation fault (Address not mapped to object [0x129])

Investigating now

@Joseph-Edwards
Copy link
Collaborator

With debug enabled we get a big more:

#8    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3c801f, in libsemigroups::IsObviouslyInfinite::~IsObviouslyInfinite()
#7    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3caced, in Eigen::Matrix<long, -1, -1, 0, -1, -1>::~Matrix()
#6    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3caccd, in Eigen::PlainObjectBase<Eigen::Matrix<long, -1, -1, 0, -1, -1> >::~PlainObjectBase()
#5    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3cb870, in Eigen::DenseStorage<long, -1, -1, -1, 0>::~DenseStorage()
#4    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3ccfab, in void Eigen::internal::conditional_aligned_delete_auto<long, true>(long*, unsigned long)
#3    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3ce7fb, in void Eigen::internal::conditional_aligned_free<true>(void*)
#2    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3ca53a, in Eigen::internal::aligned_free(void*)
#1    Object "/usr/local/lib/libsemigroups.so.3", at 0x76cbba3ca402, in Eigen::internal::handmade_aligned_free(void*)
#0    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x76cbc38add55, in __libc_free
Segmentation fault (Address not mapped to object [0x129])

@Joseph-Edwards
Copy link
Collaborator

You need to add CXXFLAGS="-fpermissive -flax-vector-conversions" to pip before it will compile

It seems like -flax-vector-conversions is the culprit here. I'm not really sure where to go from here, but this seems to be what is causing the problem (and explains why the errors have nothing to do with HPCombi)

@james-d-mitchell
Copy link
Member Author

I've tried moving the compiler flags into setup.py, if the there's still a seg fault in the linux tests, I'll just add --disable-eigen when we are building libsemigroups. This does leave the question of what to do about the conda feedstocks: libsemigroups currently is compiled there with --enable-eigen, which might mean that the python bindings test fail when installed via conda. We could just disable eigen there too I suppose. We might have to make some releases to check what happens.

@james-d-mitchell james-d-mitchell changed the title hpcombi: support Vect16 + PTransf16 + Transf16 hpcombi: support Vect16 + PTransf16 + subclasses Nov 21, 2025
@james-d-mitchell
Copy link
Member Author

The failing test was due to a bug in simde, we're not sure why that code was being executed, and will investigate further.

@james-d-mitchell james-d-mitchell force-pushed the hpcombi branch 3 times, most recently from 2bb9abe to fd5c070 Compare November 24, 2025 12:16
@james-d-mitchell james-d-mitchell marked this pull request as ready for review November 24, 2025 12:19
@james-d-mitchell james-d-mitchell added libsemigroups-feature-not-yet-supported Label for issues and PRs related to features of libsemigroups not yet supported here and removed wip Label for PRs that are work in progress labels Nov 24, 2025
Copy link
Collaborator

@Joseph-Edwards Joseph-Edwards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor doc suggestions, but otherwise I think this is good to go. Thanks @james-d-mitchell!

@Joseph-Edwards Joseph-Edwards merged commit 86d7f69 into libsemigroups:main Nov 25, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

libsemigroups-feature-not-yet-supported Label for issues and PRs related to features of libsemigroups not yet supported here

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants